<?php

namespace app\common\model\Business;

use think\Model;

// 软删除的模型
use traits\model\SoftDelete;

class Address extends Model
{
    // 继承软删除
    use SoftDelete;

    // 客户收货地址
    protected $name = 'business_address';

    // 指定一个自动设置的时间字段
    // 开启自动写入
    protected $autoWriteTimestamp = true; 

    // 设置字段的名字
    protected $createTime = false; //插入的时候设置的字段名

    // 禁止 写入的时间字段
    protected $updateTime = false;

    // 软删除的字段
    protected $deleteTime = 'deletetime';
    // 忽略数据表不存在的字段
    protected $field = true;

    // 追加字段
    protected $append  = [
        'address_text',
        'status_text'
    ];

    //城市信息获取器
    public function getAddressTextAttr($value, $data)
    {
        $ReginModel = model('Region');
        $province = isset($data['province']) ? $data['province'] : 0;
        $city = isset($data['city']) ? $data['city'] : 0;
        $district = isset($data['district']) ? $data['district'] : 0;

        $province_name = $ReginModel->where(['code' => $province])->value('name');
        $city_name = $ReginModel->where(['code' => $city])->value('name');
        $district_name = $ReginModel->where(['code' => $district])->value('name');

        $address_text = '';

        if(!empty($province_name))
        {
            $address_text = $province_name;
        }

        if(!empty($city_name))
        {
            $address_text .= '/'.$city_name;
        }

        if(!empty($district_name))
        {
            $address_text .= '/'.$district_name;
        }

        return $address_text;
    }

    public function getStatusTextAttr($value,$data)
    {
        $status = empty($data['status']) ? '' : $data['status'];
        switch ($status){
            case 0:
                return "非默认";
                break;
            case 1:
                return "默认";
                break;
            default:
                return "未知状态";
                break;
        }
    }
    public function business()
    {
        return $this->belongsTo('app\common\model\Business\Business', 'busid', 'id', [], 'LEFT')->setEagerlyType(0);
    }


    public function provinces()
    {
        // belongsTo('关联模型名','外键名','关联表主键名',['模型别名定义'],'join类型');
        // 参数1：关联的模型
        // 参数2：用户表的外键的字段
        // 参数3：关联表的主键
        // 参数4：模型别名
        // 参数5：链接方式 left
        // setEagerlyType(1) IN查询
        // setEagerlyType(0) JOIN查询
        return $this->belongsTo('app\common\model\Region', 'province', 'code', [], 'LEFT')->setEagerlyType(0);
    }

    // 查询城市
    public function citys()
    {
        return $this->belongsTo('app\common\model\Region', 'city', 'code', [], 'LEFT')->setEagerlyType(0);
    }

    // 查询地区
    public function districts()
    {
        return $this->belongsTo('app\common\model\Region', 'district', 'code', [], 'LEFT')->setEagerlyType(0);
    }
}
